1. Field of the Invention
The present invention relates to a technique for enabling a user of a data processing system to intuitively navigate through hierarchical data and manipulate the data for use in a desired manner. More particularly, the present invention relates to a technique for permitting a user of a data processing system to manipulate data presented in a tree structure to develop software applications.
2. Description of the Related Art
One of the major drawbacks for computer software users and developers has been the difficulty of use associated with the software. An industry wide effort has been underway for several years to create graphical user interfaces (GUIs) for computer software that are intuitive and user friendly. Folders, icons, buttons, scroll bars, etc. are examples of GUI improvements which have been introduced which may using computer software easier and more intuitive for both novices and experts.
One area that has been of particular concern is the use and manipulation of data or information which is hierarchical; that is, data or information that has hierarchical relationships, such as object oriented class libraries. Typically, a user must know or understand the relationship of components within the hierarchy of the information as well as the content of specific components within the hierarchy. While it is a relatively easy manner to present one or the other of these concepts to a user in a graphical user interface environment, such as through a tree structure for hierarchical data or by presenting the methods for a class within a given hierarchy, presenting both to a user simultaneously in an intuitive manner has proven difficult. A number of browsers have been devised which attempt to show both of these concepts simultaneous by using multiple parallel columns, with information in the leftmost column being the highest in the hierarchy of the information presented, with the hierarchy level of the information descending one level with each column to the right. Thus, for example, a class list, a subclass list (for a selected class), and the code for a method (for a selected subclass) may be shown in three adjacent columns, from left to right, respectively. A small graphical indicator is also employed to show the relative hierarchical position of the information in the three columns within a larger hierarchy. For example, see U.S. patent application Ser. No. 08/370,773, now U.S. Pat. No. 5,615,346 which is assigned to the same assignee. However, such browsers are best suited for expert users who know and/or must memorize large amounts of information regarding the hierarchical data and overall hierarchy. Further, such browsers do little to ease the learning burden for users at a novice or intermediate programming level.
A technique that has been developed to assist novice and intermediate programmers utilizing application development tools, such as VisualAge for Smalltalk from International Business Machines Corporation (IBM) and PowerBuilder from Sybase Inc, has been the concept of visual programming and programming from parts. In addition to the underlying programming language, such application development tools provide a selection of pre-built software parts or components presented to a software developer via an icon in a graphical user interface together with a open work space. By simply selecting one of the icons and dragging it into the work space, the developer in effect programs an application that the developer is creating to include the code for the function of the part or component which the icon represents.
Programming from parts is especially effective for developing graphical user interfaces for software applications being created, but is employed for adding many types of function to applications, such as communication, database access, multimedia, etc. However, the degree of difficulty quickly rises if the need arises to modify or extend the underlying programming for the parts or components. If the software developer needs to change or modify or extend the function of the part for customization purposes, the developer must go behind the iconic representation to the actual code. Often the part will be hierarchical in nature, as is the case for tools such as VisualAge which build applications in object oriented languages, such as Smalltalk or Java. Modification or customization of or extending VisualAge parts or components is possible. Typically, a part or component is written to conform with a xe2x80x9cpartsxe2x80x9d architecture, and options may be built into a part such that while the part is provided with default settings, a developer may specify or customize the part through modifications of specific attributes or settings through a series of list boxes. However, if a desired choice is not provided, methods of the Smalltalk code must be modified or newly written and added to the instance of the part that has been added to the application. If the developer is never presented with the actual hierarchy of the part, which is typically a set of hierarchical classes, and a way to quickly understand the hierarchy and related data, modification or customization or extension of the part or component can be very difficult.
To date, no complete solution has been provided to these problems associated with hierarchical data. These problems have been addressed individually at times, but no overall solution has been provided. Accordingly, need exists for a technique for permitting the relationships of components within a hierarchy of data to be easily understood and for permitting a user to manipulate that data intuitively.
An object of the present invention is to provide visual programming capabilities for hierarchical information presented in a tree structure.
Another object of the invention is to provide an intuitive graphical user interface for software development tools.
Yet another object of the invention is to provide a technique for permitting users to manipulate hierarchical data presented in a tree structure.
A further object of the invention is to provide an enhanced interface and tool for visual programming.
Other objects and advantages of the present invention will be set forth in part in the description and the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.
To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides computer readable code on media for use in a computing environment for permitting development of an application from a plurality of available classes, comprising first subprocesses for displaying a hierarchy of selectable classes in a class tree; second subprocesses for simultaneously displaying a graphical representation of the application under development; and third subprocesses for simultaneously displaying code for one of the selectable classes. The computer readable code may further comprise fourth subprocesses for displaying the selectable classes in a class list, and fifth subprocesses for displaying the selectable classes as selectable graphical representations, wherein selection of one of the graphical representations selects its corresponding selectable class. Additionally, the computer readable code may further comprise sixth subprocesses for displaying one of the class tree and the class list at a time in a class window. Alternatively, the class tree is displayed in a class window, the graphical representation of the application under development is displayed in a composition editor window, and the code is displayed in a code window, and the class window, the composition editor window and the code window are displayed simultaneously. The code may further comprise seventh subprocesses for permitting a user to select for display in the class window from among the class tree, a class list of the selectable classes, and selectable graphical illustrations of the selectable classes.
Additionally, the present invention provides in an application development tool in a computing environment, a method for presenting class packages to a developer having classes for selection by the developer and inclusion in an application being created, comprising displaying a class package in a first window; displaying a graphical representation of the application being created in a second window; and displaying code for a class from the displayed class package in a third window. Preferably, the first, second and third windows are displayed simultaneously, classes from the displayed class package are selectable for inclusion in the application being created, and the classes in the displayed class package are displayed hierarchially in a class tree. The method may further comprise the step of permitting a user to select which class package is to be displayed in the first window from a plurality of class packages, and the step of permitting a user to select to have classes comprising the class package displayed hierarchically in class tree format or in a collage of graphical representations of the classes. The permitting step may also permit the user to select to have the classes comprising the class package to be displayed in a class list. Preferably, the displaying code step further comprises, upon a user selecting a class, displaying the code for the selected class in the third window. Further, a user may preferably modify the code for the class in the third window.
In a data processing system, the present invention provides a system for permitting a user to include selectable classes from available class packages in an application being created, comprising first means for displaying classes from a first class package; second means for displaying code for one of the classes, wherein the first and second means display the selectable classes and the code simultaneously; third means for permitting the user to select a different class package from among the available class packages for display of its classes by said first means; and fourth means for retrieving the selected class package over a network if the selected class package is not stored locally.
The system may further comprise fifth means for simultaneously displaying with the first and second means a graphical representation of at least a part of the application being created. Preferably, the first means displays the classes in a first window and the second means displays the code in a second window. The first means may further permit the user to select a format from a plurality of available formats in which to display the classes, and the available formats may include a class tree and a collage.
The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout.